« Précedent Sommaire Suivant »

Les vues Twig

Elles sont chargées dans cette ordre:

  • application/include/vues/system
  • application/include/vues/layout
  • application/include/vues/view

ainsi la vue standard peut étendre de application/include/vues/layout/body.html.twig


{% extends "system.html.twig" %} {% block body %} <!-- Body Inner --> <div class="body-inner"> <!-- Topbar --> <div id="topbar" class="d-none d-xl-block d-lg-block topbar-transparent topbar-fullwidth dark" style="background: rgba(0, 0, 0, 0.59);"> <div class="container"> <ul class="top-menu"> {{call('\\MVC\\Object\\Environment','getTextEnvironment',[]) | raw}} <li {% if name == 'docs_route' or name == 'docs_name_route' %} class="actual" {% endif %} ><a href="{{ call("\\MVC\\Classe\\Url","link_rewrite",[ false, 'docs', []]) }}">Documentation</a></li> <li {% if name == 'depots' %} class="actual" {% endif %} ><a href="{{ call("\\MVC\\Classe\\Url","link_rewrite",[ false, 'gitlist/SAND-FrameWork', []]) }}">Dépot</a></li> <li {% if name == 'donate' %} class="actual" {% endif %} ><a href="{{ call("\\MVC\\Classe\\Url","link_rewrite",[ false, 'Donate', []]) }}">Donate</a></li> <li {% if name == 'cgu' %} class="actual" {% endif %} ><a href="{{ call("\\MVC\\Classe\\Url","link_rewrite",[ false, 'CGU', []]) }}"> CGU Terms</a></li> <li {% if name == 'policy' %} class="actual" {% endif %} ><a href="{{ call("\\MVC\\Classe\\Url","link_rewrite",[ false, 'Policy', []]) }}">Policy</a></li> </ul> </div> </div> <!-- end: Topbar --> <!-- Header --> <header id="header" class="dark" data-transparent="true" data-fullwidth="true" style="background: rgba(0, 0, 0, 0.59);"> <div class="header-inner"> <div class="container"> <!--Navigation Resposnive Trigger--> <div id="mainMenu-trigger"> <a class="lines-button x"><span class="lines"></span></a> </div> <!--end: Navigation Resposnive Trigger--> <!--Navigation--> <div id="mainMenu"> <div class="container"> <!--Logo--> <div id="logo"> <a href="#"> SAND Framework </a> </div> <!--end: logo--> <nav> <ul> <li {% if name == 'index' %} class="actual" {% endif %} ><a href="{{ call("\\MVC\\Classe\\Url","link_rewrite",[false, 'Index', []]) }}">Index</a></li> <li {% if name == 'admin' %} class="actual" {% endif %} ><a href="{{ call("\\MVC\\Classe\\Url","link_rewrite",[false, 'Admin', []]) }}">Admin</a></li> <li {% if name == 'laravel' %} class="actual" {% endif %} ><a href="{{ call("\\MVC\\Classe\\Url","link_rewrite",[false, 'Laravel', []]) }}">Module Laravel</a></li> </ul> </nav> </div> </div> <!--end: Navigation--> </div> </div> </header> <!-- end: Header --> <!-- Subbar --> <div id="subbar" class="fullwidth"> <div class="container"> <span style="float:left;">Vous êtes connecté en tant que {{session('user_login')}}</span> <span style="float:right;"><a href="{{ call("\\MVC\\Classe\\Url","link_rewrite",[ false, 'Logout', []]) }}">Se Deconnecter</a></span> </div> </div> <!-- end: Subbar --> <!-- Breadcrumbs --> {%if ariane is defined %} <div id="breadcrumbs" class="fullwidth"> <div class="container"> <nav aria-label="breadcrumb"> <ol class="breadcrumb"> {% for value in ariane %} {% if value == ariane|last %} <li class="breadcrumb-item active" aria-current="page">{{value}}</li> {% else %} <li class="breadcrumb-item"><a href="{{call("\\MVC\\Classe\\Url","link_rewrite",[false,arianelink[value.index],[] ])}}">{{value}}</a></li> {% endif %} {% endfor %} </ol> </nav> </div> </div> {% endif %} <section id="page-content"> <div class="container"> <!--Alerts--> {% if not session('alerts') == null %} {% for alert in session('alerts') %} <div class="alert alert-{{alert.type}} alert-dismissible fade show" role="alert"> <strong>{{alert.title}}</strong> {{alert.message}}. <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button> </div> {% endfor %} {% endif %} <!--end: Alerts--> {% block content %}{% endblock %} </div> </section> <!-- Footer --> <footer id="footer"> <div class="footer-content"> <div class="container"> <div class="row"> <div class="col-lg-3"> <div class="widget"> <div class="widget-title"></div> <p class="mb-5"> <img src="{{ call("\\MVC\\Classe\\Url","asset_rewrite",['assets/img/1007698-ffeb3b.svg']) }}" width="150"> </p> </div> </div> <div class="col-lg-9"> <p> SAND FrameWork is an CC-licensed or MIT-licenced open source project and completely free to use. </p> <p> However, the amount of effort needed to maintain and develop new features for the project is not sustainable without proper financial backing. You can support its ongoing development by being a backer or a sponsor on <a href="https://www.patreon.com/">Patreon campaign</a> (recurring, with perks for different tiers), and get your company logo here. </p> <p> Also, you can make a <a href="https://www.paypal.me/">one time donation via PayPal</a>. </p> </div> </div> </div> <div class="copyright-content"> <div class="container"> <div class="copyright-text text-center">&copy; 2020-2021 Built with SAND Framework - Responsive SAND Template.</div> </div> </div> </div> </footer> <!-- end: Footer --> </div> <!-- end: Body Inner --> {% endblock %}

qui étends de application/include/vues/system/system.html.twig

<!DOCTYPE html>
<html>
<head>
    {% block head %}
        <title>{{page_title}}</title>

        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <meta name="author" content="" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="description" lang="fr" content="{{description}}"/>

        <link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
        <link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
        <link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
        <link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
        <link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
        <link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
        <link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
        <link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
        <link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
        <link rel="icon" type="image/png" sizes="192x192"  href="/android-icon-192x192.png">
        <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
        <link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
        <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
        <link rel="manifest" href="/manifest.json">
        <meta name="msapplication-TileColor" content="#ffffff">
        <meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
        <meta name="theme-color" content="#ffffff">
        {% block topCss %}
            <link rel="stylesheet" href="{{ call("\\MVC\\Classe\\Url","asset_rewrite",['assets/bootstrap-5.0.0-beta1-dist/css/bootstrap.min.css'])}}">
            <link rel="stylesheet" href="{{ call("\\MVC\\Classe\\Url","asset_rewrite",['assets/css/custom.css'])}}">
        {% endblock %}
    {% endblock %}
</head>
<body>

{% block topJavascript %}{% endblock %}

{% block body %}{% endblock %}

{% block bottomJavascript %}
<script src="{{ call("\\MVC\\Classe\\Url","asset_rewrite",['assets/bootstrap-5.0.0-beta1-dist/js/bootstrap.min.js'])}}"></script>
<script src="{{ call("\\MVC\\Classe\\Url","asset_rewrite",['assets/js/custom.js'])}}"></script>

{#
SCRIPT JS permettant de ne valider qu'une seule fois un formulaire
ATTENTION tous les formulaires sont affecté
Lors d'une validation bootstrap personnalisé veuillez utilisé
la class do-resubmit sur le formulaire afin de permettre
l'activation supplémentaire du bouton.
#}
<script>
    window.onload = function() {
        let PreventAllforms = document.querySelectorAll("form");
        Array.prototype.slice.call(PreventAllforms)
            .forEach(function (PreventForm) {
                PreventForm.onsubmit = submitted.bind(PreventForm);
            });
    }

    function submitted(event) {
        if (event.target.classList.contains('do-resubmit')) {
            event.submitter.disabled = false;
        }else{
            event.submitter.disabled = true;
        }
    }
</script>
{% endblock %}
</body>
</html>
« Précedent Sommaire Suivant »